查看原文
其他

如何优雅的给 cp 和 mv 命令添加一个高颜值的进度条

 推荐大家关注一个公众号
点击上方 "Linux中文社区关注,星标或者置顶
21点00分准时推送,第一时间送达

责编:中文妹 | 来源:TinyChen's Studio

链接:https://tinychen.com/20201128-add-progess-bar-in-cp-mv/

上一篇:一个披着 Windows 外壳的轻量级 Linux 系统
大家好,我是中文妹。

本文主要介绍如何使用 Github 上的开源项目 advcpmv 来实现 Linux 中的 「cp」和 「mv」 命令的进度条。

由于 cp 和 mv 命令都是属于 coreutils 工具包下的,因此我们的主要操作就是在编译 coreutils 的时候加入补丁从而实现进度条功能。

# 注意尽量不要使用 root 用户操作pwd/home/tinychen# 下载coreutils$ wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz$ tar -xJf coreutils-8.32.tar.xz$ cd coreutils-8.32/# 下载 github 上的补丁$ wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch# 打补丁,实现进度条显示$ patch -p1 -i advcpmv-0.8-8.32.patchpatching file src/copy.cpatching file src/copy.hpatching file src/cp.cpatching file src/mv.c# 编译安装$ ./configure$ make# 将打补丁生成的cp和mv命令的二进制文件复制到bin目录下$ sudo cp src/cp /usr/local/bin/cp$ sudo cp src/mv /usr/local/bin/mv

接着我们只需要在使用 cp 和 mv 命令的时候加上 -g 参数就可以显示进度条了,为了方便起见我们可以在 .bashrc 文件中设置 alias

alias cp='cp -ig'alias mv='mv -ig'

试一下实际效果,复制一个大文件夹的时候可以显示总进度和当前文件复制进度,以及在复制完成之后还可以显示复制的过程中的平均速度。

$ cp -r /samba/Elements02/kvm/* /kvm/0 files copied so far...                                                                                                                                     1.6 GiB /  67.2 GiB[===>                                                                                                                                                                   ]  2.4 %Copying at 178.4 MiB/s (about 0h 6m 45s remaining)/samba/Elements02/kvm/iso/CentOS-6.10-x86_64-bin-DVD1.iso                                                                                                    1.6 GiB /   3.7 GiB[========================================================================>                                                                                              ] 43.4 %



  声明:本文部分素材转载自互联网,如有侵权立即删除 。


往期精彩


喜欢本文的朋友们,欢迎长按下图,关注订阅号Linux中文社区


收看更多精彩内容

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存